<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMVPNPlugin</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch02.html" title="libnm-glib API Reference">
<link rel="prev" href="NMVPNConnection.html" title="NMVPNConnection">
<link rel="next" href="libnm-glib-NMVpnPluginUiWidget.html" title="NMVpnPluginUiWidget">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="NMVPNConnection.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libnm-glib Reference Manual</th>
<td><a accesskey="n" href="libnm-glib-NMVpnPluginUiWidget.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#libnm-glib-NMVPNPlugin.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#libnm-glib-NMVPNPlugin.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="libnm-glib-NMVPNPlugin"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="libnm-glib-NMVPNPlugin.top_of_page"></a>NMVPNPlugin</span></h2>
<p>NMVPNPlugin</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="libnm-glib-NMVPNPlugin.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">                    <a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin">NMVPNPlugin</a>;
                    <a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPluginClass" title="NMVPNPluginClass">NMVPNPluginClass</a>;
enum                <a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPluginError" title="enum NMVPNPluginError">NMVPNPluginError</a>;
#define             <a class="link" href="libnm-glib-NMVPNPlugin.html#NM-VPN-PLUGIN-DBUS-SERVICE-NAME:CAPS" title="NM_VPN_PLUGIN_DBUS_SERVICE_NAME">NM_VPN_PLUGIN_DBUS_SERVICE_NAME</a>
#define             <a class="link" href="libnm-glib-NMVPNPlugin.html#NM-VPN-PLUGIN-STATE:CAPS" title="NM_VPN_PLUGIN_STATE">NM_VPN_PLUGIN_STATE</a>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-disconnect" title="nm_vpn_plugin_disconnect ()">nm_vpn_plugin_disconnect</a>            (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-error-quark" title="nm_vpn_plugin_error_quark ()">nm_vpn_plugin_error_quark</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-failure" title="nm_vpn_plugin_failure ()">nm_vpn_plugin_failure</a>               (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><span class="type">NMVPNPluginFailure</span> reason</code></em>);
<a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="returnvalue">DBusGConnection</span></a> *   <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-connection" title="nm_vpn_plugin_get_connection ()">nm_vpn_plugin_get_connection</a>        (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>);
<span class="returnvalue">NMVPNServiceState</span>   <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-state" title="nm_vpn_plugin_get_state ()">nm_vpn_plugin_get_state</a>             (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip4-config" title="nm_vpn_plugin_set_ip4_config ()">nm_vpn_plugin_set_ip4_config</a>        (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *ip4_config</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-login-banner" title="nm_vpn_plugin_set_login_banner ()">nm_vpn_plugin_set_login_banner</a>      (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *banner</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-state" title="nm_vpn_plugin_set_state ()">nm_vpn_plugin_set_state</a>             (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><span class="type">NMVPNServiceState</span> state</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="libnm-glib-NMVPNPlugin.description"></a><h2>Description</h2>
<p>
</p>
</div>
<div class="refsect1">
<a name="libnm-glib-NMVPNPlugin.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="NMVPNPlugin"></a><h3>NMVPNPlugin</h3>
<pre class="programlisting">typedef struct {
	GObject parent;
} NMVPNPlugin;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="NMVPNPluginClass"></a><h3>NMVPNPluginClass</h3>
<pre class="programlisting">typedef struct {
	GObjectClass parent;

	/* virtual methods */
	gboolean (*connect)    (NMVPNPlugin   *plugin,
					    NMConnection  *connection,
					    GError       **err);

	gboolean (*need_secrets) (NMVPNPlugin *plugin,
	                              NMConnection *connection,
	                              char **setting_name,
	                              GError **error);

	gboolean (*disconnect) (NMVPNPlugin   *plugin,
					    GError       **err);

	/* Signals */
	void (*state_changed)  (NMVPNPlugin *plugin,
					    NMVPNServiceState state);

	void (*ip4_config)     (NMVPNPlugin *plugin,
					    GHashTable  *ip4_config);

	void (*login_banner)   (NMVPNPlugin *plugin,
					    const char *banner);

	void (*failure)        (NMVPNPlugin *plugin,
					    NMVPNPluginFailure reason);

	void (*quit)           (NMVPNPlugin *plugin);

	/* Padding for future expansion */
	void (*_reserved1) (void);
	void (*_reserved2) (void);
	void (*_reserved3) (void);
	void (*_reserved4) (void);
	void (*_reserved5) (void);
	void (*_reserved6) (void);
} NMVPNPluginClass;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="NMVPNPluginError"></a><h3>enum NMVPNPluginError</h3>
<pre class="programlisting">typedef enum {
	NM_VPN_PLUGIN_ERROR_GENERAL,              /*&lt; nick=General &gt;*/
	NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS, /*&lt; nick=StartingInProgress &gt;*/
	NM_VPN_PLUGIN_ERROR_ALREADY_STARTED,      /*&lt; nick=AlreadyStarted &gt;*/
	NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS, /*&lt; nick=StoppingInProgress &gt;*/
	NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED,      /*&lt; nick=AlreadyStopped &gt;*/
	NM_VPN_PLUGIN_ERROR_WRONG_STATE,          /*&lt; nick=WrongState &gt;*/
	NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS,        /*&lt; nick=BadArguments &gt;*/
	NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,        /*&lt; nick=LaunchFailed &gt;*/
	NM_VPN_PLUGIN_ERROR_CONNECTION_INVALID,   /*&lt; nick=ConnectionInvalid &gt;*/
} NMVPNPluginError;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="NM-VPN-PLUGIN-DBUS-SERVICE-NAME:CAPS"></a><h3>NM_VPN_PLUGIN_DBUS_SERVICE_NAME</h3>
<pre class="programlisting">#define NM_VPN_PLUGIN_DBUS_SERVICE_NAME "service-name"
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="NM-VPN-PLUGIN-STATE:CAPS"></a><h3>NM_VPN_PLUGIN_STATE</h3>
<pre class="programlisting">#define NM_VPN_PLUGIN_STATE             "state"
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-disconnect"></a><h3>nm_vpn_plugin_disconnect ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            nm_vpn_plugin_disconnect            (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-error-quark"></a><h3>nm_vpn_plugin_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              nm_vpn_plugin_error_quark           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-failure"></a><h3>nm_vpn_plugin_failure ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                nm_vpn_plugin_failure               (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><span class="type">NMVPNPluginFailure</span> reason</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-get-connection"></a><h3>nm_vpn_plugin_get_connection ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="returnvalue">DBusGConnection</span></a> *   nm_vpn_plugin_get_connection        (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-get-state"></a><h3>nm_vpn_plugin_get_state ()</h3>
<pre class="programlisting"><span class="returnvalue">NMVPNServiceState</span>   nm_vpn_plugin_get_state             (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-set-ip4-config"></a><h3>nm_vpn_plugin_set_ip4_config ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                nm_vpn_plugin_set_ip4_config        (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *ip4_config</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-set-login-banner"></a><h3>nm_vpn_plugin_set_login_banner ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                nm_vpn_plugin_set_login_banner      (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code>const <span class="type">char</span> *banner</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="nm-vpn-plugin-set-state"></a><h3>nm_vpn_plugin_set_state ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                nm_vpn_plugin_set_state             (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>,
                                                         <em class="parameter"><code><span class="type">NMVPNServiceState</span> state</code></em>);</pre>
<p>
</p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>